A simplified block diagram of a typical communication system is illustrated in FIG. 1. In this example, a transmitter may include a source encoder 101, employing a variable-length code (VLC) to map source symbols to binary codewords, a channel encoder 102 that adds redundancy to the VLC-coded bit stream, and a modulator 103 to map the channel-coded bit stream to the waveforms appropriate for a particular channel 104. At the receiver, reverse operations (demodulation 105, channel decoding 106, and source decoding 107) are performed. Typically, source and channel decoding are performed separately. Also, source decoding is usually performed on logical hard bits (0/1), or antipodal hard bits (−1/+1), coming out of the channel decoder. Various other components of the transmitter and receiver are omitted for simplicity. For example, an interleaver and deinterleaver may be included, respectively, after and before channel encoder (102) and channel decoder (106). Frequency, phase and timing synchronization blocks could be employed in the receiver as they are well known in the art. Typically, error detection encoders and decoders would be included, usually employing CRC codes. In some radio systems, either multiple transmit or receive antennae, or both, may be included.
In the conventional system shown in FIG. 1, the source and channel codes are decoded separately (see blocks 106 and 107). Other decoding schemes have also been considered in the art whereby the source and channel codes are decoded jointly (see, e.g., US Patent Publication 2007/0140375). In some of these systems, to perform joint source-channel decoding (JSCD), an iterative decoder is presented where the source statistics are measured at the output of the source decoder and used to drive the bit-clocked Max-Log-MAP channel decoder. The source decoder itself operates on hard bits, mapping the binary codewords obtained from the channel decoder to the symbols via a VLC table. In addition, some methods have been presented in which a source decoder is able to process soft bits.
Furthermore, the combination of source and channel decoding can be realized as a symbol-clocked sequential decoder, such as the stack algorithm or M-algorithm. When the VLC-coded message is terminated by a known sequence of bits (as is the case, for example, in audio scalefactor coding by the low complexity mono MPEG-4 AAC source coder, where the terminating sequence is 000), it was suggested in the art that such knowledge can improve the decoding performance. This is because a known terminating sequence helps suppress the paths that have mismatched lengths compared to the correct path, and helps achieve a better estimate of the correct path length.
Some in this field have discussed the problem of separation of different media frames in the same transmission packet, a problem which has been referred to as “burst segmentation.” In this setting, media frames are stacked back-to-back, so each frame is terminated by the header of the next frame in the sequence. Since headers usually contain some a priori known or predictable information, such knowledge can be used to help separate the frames and improve decoding due to the same reasons discussed in the previous paragraph, namely, a known terminating sequence helps suppress the paths that have mismatched lengths compared to the correct path. Some VLCs possess so-called Self-Synchronization Strings (SSSs) with the following property: in a bit stream produced by the VLC, the first bit following the end of a SSS is the first bit of some codeword from that VLC. SSS helps the decoder regain symbol synchronization with the encoder. Certain systems have used SSS within a bit-clocked maximum a posteriori (MAP) decoder to improve the performance. However, although an SSS will help the decoder regain symbol synchronization with the encoder following a bit error, the number of decoded symbols prior to the SSS will, in general, be different from the number of encoded symbols, and the path length measured in source symbols will be different from the original path length. Moreover, since SSSs are combinations of codewords, they will occur in the bit stream if and when the corresponding sequence of source symbols is observed. The encoder itself has no control over when and how often SSSs will occur. It would therefore be advantageous if the encoder could control where synchronization happens; this would enable the system to synchronize in the most effective way.
Therefore, there is a need for a method and system that increase control over the synchronization process in joint source-channel decoding and improving source decoding performance.